Skip to content

Add missing retransmissions for SYN/SYNACK/FIN segments#33

Open
danielinux wants to merge 1 commit intowolfSSL:masterfrom
danielinux:retrans-syn-synack-fin
Open

Add missing retransmissions for SYN/SYNACK/FIN segments#33
danielinux wants to merge 1 commit intowolfSSL:masterfrom
danielinux:retrans-syn-synack-fin

Conversation

@danielinux
Copy link
Member

No description provided.

Copilot AI review requested due to automatic review settings February 19, 2026 16:31
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements retransmission logic for TCP control segments (SYN, SYNACK, and FIN) to improve connection reliability when these critical packets are lost. The implementation adds a separate control-segment retransmission timeout (RTO) mechanism that operates independently from the existing data-segment RTO, using exponential backoff with a configurable maximum retry limit.

Changes:

  • Added TCP control segment retransmission with separate RTO tracking (ctrl_rto_active, ctrl_rto_retries)
  • Implemented exponential backoff for control segment retransmissions with a maximum of 6 retries
  • Enhanced tcp_rto_cb to handle SYN_SENT, SYN_RCVD, FIN_WAIT_1, and LAST_ACK states
  • Updated FIN acknowledgement detection to properly check for sequence number wraparound
  • Added comprehensive unit tests covering retransmission scenarios and edge cases

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/wolfip.c Added control RTO infrastructure, timer management functions, updated tcp_rto_cb to retransmit control segments, enhanced tcp_ack to detect FIN acknowledgements and stop control timers, initialized control RTO state in connect/close paths, prevented data RTO interference with control states
src/test/unit/unit.c Added tests for SYN/FINACK retransmission, SYNACK cancellation, FIN_WAIT_1 transition, retry cap enforcement; corrected existing test to use seq+1 for FIN ACK; updated non-established test to use TCP_CLOSED instead of TCP_SYN_SENT

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments